package org.example.uhy.application.context;

import org.example.uhy.application.converter.CouponConverter;
import org.example.uhy.application.converter.MemberConverter;
import org.example.uhy.domain.model.coupon.CouponAdmissionService;

public class DomainRegistry {
    private static final DomainRegistry registry = new DomainRegistry();
    CouponAdmissionService admissionService;
    MemberConverter memberConverter;
    CouponConverter couponConverter;

    private DomainRegistry() {
        admissionService = new CouponAdmissionService();
        memberConverter = new MemberConverter();
        couponConverter = new CouponConverter();
    }

    public static DomainRegistry instance() {
        return registry;
    }

    public CouponAdmissionService admissionService() {
        return admissionService;
    }

    public void admissionService(CouponAdmissionService admissionService) {
        this.admissionService = admissionService;
    }

    public MemberConverter memberConverter() {
        return memberConverter;
    }

    public void memberConverter(MemberConverter memberConverter) {
        this.memberConverter = memberConverter;
    }

    public CouponConverter couponConverter() {
        return couponConverter;
    }

    public void couponConverter(CouponConverter couponConverter) {
        this.couponConverter = couponConverter;
    }
}
